package com.hskn.hss.module.tlemployee.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hskn.hss.core.domain.BaseEntity;
import com.hskn.hss.entity.AjaxResult;
import com.hskn.hss.entity.TreeEntity;
import com.hskn.hss.exception.ExcelReaderDataException;
import com.hskn.hss.exception.HssException;
import com.hskn.hss.module.grid.entity.Grid;
import com.hskn.hss.module.tlemployee.entity.TlEmployee;
import com.hskn.hss.module.tlemployee.to.TIEmployeeTo;
import com.hskn.hss.module.tlemployee.vo.TlEmployeePageVo;
import com.hskn.hss.module.tlemployee.vo.TlEmployeeVO;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author hskn
 * @since 2021-05-15
 */
public interface ITlEmployeeService extends IService<TlEmployee> {
    AjaxResult insert(TlEmployee tlEmployee) throws HssException;

    AjaxResult update(TlEmployee tlEmployee) throws HssException;
    AjaxResult updatebyids(TlEmployee tlEmployee) throws HssException;
    AjaxResult deletebyid(JSONObject params) throws HssException;
    void excelReader(List<TlEmployee> tlEmployeeList) throws ExcelReaderDataException;

    AjaxResult deletebatchbyid(TlEmployee tlEmployee) throws HssException;

    TlEmployeePageVo getList(BaseEntity entity, TIEmployeeTo tIEmployeeTo) throws HssException ;

    TlEmployee getDetail(JSONObject params) throws HssException;

    List getSelectList();

    List<TreeEntity> getEmplTree(JSONObject params);

    List<TreeEntity> getEmplTree2(JSONObject params);

    List<TreeEntity> getuserList();

    int getCurrentNumber(JSONObject params) throws HssException;

    int getDepartureNumber(JSONObject params) throws HssException;

    JSONObject getJobCategories(JSONObject params) throws HssException;

    JSONObject getWorkerType(JSONObject params) throws HssException;

    JSONObject getAge(JSONObject params) throws HssException;

    JSONObject getGender(JSONObject params) throws HssException;

    JSONObject getEducation(JSONObject params) throws HssException;

    JSONObject getNational(JSONObject params) throws HssException;

    JSONObject getPolitical(JSONObject params) throws HssException;

    Map<String, TlEmployee> getEmpMap(QueryWrapper<TlEmployee> empQueryWrapper);

    List<Grid> getGridList(TIEmployeeTo tiEmployeeTo);

}
